Acceso al repositorio Mercurial de la asociación (BORRADOR)

La asociación Python España dispone de un repositorio Mercurial, a disposición de la misma para promover sus fines.

Condiciones de acceso

Los miembros de la Junta Directiva de la asociación deben tener acceso de lectura, al menos, al repositorio privado de la asociación. Dicho acceso es revocado una vez que esa persona deja de formar parte de la Junta Directiva de Python España.

Por definir, para el resto de las personas, tanto alta como baja.

Warning en los accesos HTTPS

El repositorio Mercurial de la asociación está accesible a través de HTTP y HTTPS . La opción recomendada es acceder al mismo a través de HTTPS SIEMPRE.

No obstante, el certificado del servidor no está firmado por una CA (autoridad de Certificación) válida, por lo que saldrá un aviso de seguridad en el navegador web y en el cliente Mercurial.

La huella digital del certificado recibido en el navegador web debe ser:

SHA1: CB:D4:ED:E7:80:C8:6B:6E:62:89:EA:1C:71:DA:AE:29:66:FF:40:54

En cambio, la huella digital del certificado recibido por el cliente Mercurial debe ser: [1]

SHA1: b7:fc:f5:9e:98:de:fe:09:16:1f:cd:b6:0e:44:f9:14:f9:04:9a:45

Naturalmente, debe recibir este hash a través de otra conexión independiente, o en una conexión de “confianza” (por ejemplo, en casa, no en un WIFI público).

Una vez que ha verificado el hash del servidor, puede configurar su navegador web o cliente Mercurial para que acepte dicho certificado de forma permanente. No le volverá a salir otro aviso de seguridad hasta que el certificado cambie. Lo que es, en sí mismo, una alerta de seguridad que debería llamarle la atención.

Nota

Si en algún momento estos certificados se modifican, se notificará a través de la lista de correo.

Acceso a los repositorios públicos

Los repositorios públicos son de acceso libre para lectura, tanto a nivel web como creando “clones” Mercurial.

Las personas que necesiten acceso PUSH a algún repositorio público deben seguir un procedimiento por definir.

Sólo se permite realizar PUSH a través de HTTPS. El acceso de solo lectura puede ser HTTP o HTTPS, pero se recomienda emplear siempre HTTPS.

Procedimiento técnico de acceso PUSH

Este procedimiento lo realiza Jesús Cea en la máquina “Babylon5”: [2]

  1. El nombre de usuario será su dirección de correo.

  2. Jesús Cea verifica que dicho usuario es miembro de la Junta Directiva de Python España.

  3. Si el usuario ya disponía de una clave de acceso al repositorio privado, y quiere utilizarse la misma clave, basta con copiar la entrada correspondiente del fichero de usuarios.

  4. Si se trata de un usuario nuevo:

    1. La clave se genera al azar con:

      $ python /z-clave.py
      

      Este comando proporciona una clave con 65 bits de entropía.

    2. El usuario se añade al sistema con el comando: [3]

    $ /usr/local/apache2/bin/htdigest \
    /datos/sources/hg/python-es/users.publico \
    "JCEA Mercurial repositories" *EMAIL*
    
  5. Al usuario se le conceden permisos PUSH en el proyecto correspondiente, añadiéndolo a su fichero .hg/hgrc.

Acceso a los repositorios privados

Los repositorios de acceso privado requieren autentificación y autorización, incluso para lectura.

En este momento, las únicas personas con acceso al repositorio privado son los miembros de la Junta Directiva.

Esto puede cambiar en el futuro, según las necesidades y demandas de la asociación.

El acceso a estos repositorios se realizará exclusivamente a través de HTTPS.

Procedimiento técnico de acceso

Este procedimiento lo realiza Jesús Cea en la máquina “Babylon5”: [2]

  1. El nombre de usuario será su dirección de correo.

  2. Si el usuario ya disponía de una clave de acceso al repositorio público, y quiere utilizarse la misma clave, basta con copiar la entrada correspondiente del fichero de usuarios.

  3. Si se trata de un usuario nuevo:

    1. La clave se genera al azar con:

      $ python /z-clave.py
      

      Este comando proporciona una clave con 65 bits de entropía.

    2. El usuario se añade al sistema con el comando: [3]

    $ /usr/local/apache2/bin/htdigest \
    /datos/sources/hg/python-es/users.PRIVADO \
    "JCEA Mercurial repositories" *EMAIL*
    
  4. Si el usuario requiere acceso PUSH a algún repositorio concreto, hay que añadirlo a su fichero .hg/hgrc.

Advertencia

Con la configuración actual del sistema, los usuarios con acceso a los repositorios privados, tienen acceso de lectura a todos ellos. Si esto es inapropiado en el futuro, habrá que cambiar la configuración.

Notas

[1]Esta diferencia se debe a que el cliente Mercurial no soporta SNI (Server Name Indication).
[2](1, 2) Este procedimiento tendrá que revisarse si Jesús Cea deja de formar parte de la Junta Directiva de Python España.
[3](1, 2) El uso del ‘realm’ “JCEA Mercurial repositories” es por compatibilidad con las claves ya existentes y la configuración actual del Apache. Esto puede cambiar en el futuro.